package demo05;

public class Test05 {

    public static void main1(String[] args) {
        Dog dog = new Dog("Tomo",3);
        dog.eat();
    }

    public static void main(String[] args) {

        Bird bird = new Bird("小鸟" , 2);
        Dog dog = new Dog("Tomo" , 3);
        //利用多态实现
        eatFun(bird);
        eatFun(dog);
        System.out.println("_____");
        //接口
        Duck duck = new Duck("唐老鸭",10);
        walk(duck);
        walk(dog);
        System.out.println("_____");
        swim(duck);
        swim(dog);
        System.out.println("_____");
        fly(duck);
        fly(bird);

        Robot robot = new Robot();
        walk(robot);
    }

    //对于这种方法而言 ， 这个方法接受的参数必须是一个动物类
    public static void eatFun(Animal animal){
        animal.eat();
    }

    //对于接口这种方式而言 ， 他不关心你传入的参数是什么类型 ， 只要具备该功能 ， 就能运行
    public static void swim(ISwimable swimable){
        swimable.swim();
    }
    public static void walk(IRunable runable){
        runable.run();
    }
    public static void fly(IFlyable flyable){
        flyable.fly();
    }

}
